﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.Mvc;

using ArmaTuCumpleModel.Model;
using ArmaTuCumpleModel.Repository;

namespace ArmaTuCumpleWeb.Controllers
{
    public class FeedBackController : Controller
    {

        //Referencia a Repositorios
        RepFeedBack RepositorioFeedBack = new RepFeedBack();
        RepServiciosActividad RepositorioServicioActividad = new RepServiciosActividad();


        //
        // GET: /FeedBack/

        public ActionResult Index()
        {
            return View();
        }

        //Retorna vista para escribir un comentario
        public ActionResult EscribirFeedback()
        {
            return View("EscribirFeedback");
        }

        //Recibe los parametros del comentario escrito
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult EscribirFeedback(Guid id, Feedback fb)
        {
            //Actualiza los datos
            fb.id_servicio_usuario = id;
            //Agrega el comentario a la DB
            RepositorioFeedBack.AgregarFeedBack(fb);
            //Guarda los datos
            RepositorioFeedBack.Guardar();
            //Redirige la acción
            return RedirectToAction("Index","MiPagina");
        }

        //Retorna los feedbacks de un servicio
        public ActionResult VerFeedbacks(Guid id)
        {
            //Busca el servicio a consultar
            Servicio_Usuario temp = RepositorioServicioActividad.ObtenerServicioActividadId(id);            
            //Retorna la vista y el servicio
            return View("VerFeedbacks", temp);
        }

        public ActionResult AdminFeedBack()
        {
            IQueryable<Feedback> Servs = RepositorioFeedBack.GetAllFeedback();
            return View("AdminFeedback", Servs);

        }

        public ActionResult AdminEliminarFeedback(int id)
        {
            Feedback Feed= RepositorioFeedBack.GetFeedbackbyId(id);
            RepositorioFeedBack.EliminarFeedBack(Feed);
            RepositorioFeedBack.Guardar();
            return (AdminFeedBack());
        }
    }
}
